package com.xoa.controller.book;

import com.xoa.model.book.BookInfoWithBLOBs;
import com.xoa.service.book.BookInfoService;
import com.xoa.util.ToJson;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 创建作者:   牛江丽
 * 创建日期:   ${date} ${time}
 * 类介绍  :
 * 构造参数:
 */
@Controller
@RequestMapping("/bookInfo")
public class BookInfoController {

    //映射
    @RequestMapping("/bookManage")
    public String bookManage(HttpServletRequest request) {
        return "/app/book/bookInput/bookManage";
    }
    //添加
    @RequestMapping("/addBook")
    public String addBook(HttpServletRequest request) {
        return "/app/book/bookInput/addBook";
    }
    //编辑
    @RequestMapping("/editBook")
    public String editBook(HttpServletRequest request) {
        return "/app/book/bookInput/editBook";
    }
    //图书查询
    @RequestMapping("/bookQuery")
    public String bookQuery(HttpServletRequest request) {
        return "/app/book/bookInput/bookQuery";
    }

    //管理图书
    @RequestMapping("/index")
    public String index(HttpServletRequest request) {
        return "/app/book/bookInput/index";
    }

    //图书入录
    @RequestMapping("/inputBook")
    public String inputBook(HttpServletRequest request) {
        return "/app/book/bookInput/inputBook";
    }

    @Resource
    private BookInfoService bookInfoService;

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午16:32:00
     * 方法介绍:   添加图书信息
     * 参数说明:   @param bookInfoWithBLOBs
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/insertBookInfo")
    public ToJson<BookInfoWithBLOBs> insertBookInfo(BookInfoWithBLOBs bookInfoWithBLOBs,MultipartFile imageFile,HttpServletRequest request){
       return bookInfoService.insertBookInfo(bookInfoWithBLOBs,imageFile,request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:46:00
     * 方法介绍:   根据id修改图书信息
     * 参数说明:   @param bookInfoWithBLOBs
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/upBookInfoById")
    public ToJson<BookInfoWithBLOBs> upBookInfoById(BookInfoWithBLOBs bookInfoWithBLOBs,MultipartFile imageFile,HttpServletRequest request){
      return bookInfoService.upBookInfoById(bookInfoWithBLOBs,imageFile,request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:46:00
     * 方法介绍:   根据id删除图书信息
     * 参数说明:   @param bookId
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/delBookInfoById")
    public ToJson<BookInfoWithBLOBs> delBookInfoById(Integer bookId){
      return bookInfoService.delBookInfoById(bookId);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:46:00
     * 方法介绍:   根据id查询图书信息
     * 参数说明:   @param bookId
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selBookInfoById")
    public ToJson<BookInfoWithBLOBs> selBookInfoById(Integer bookId){
      return bookInfoService.selBookInfoById(bookId);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:46:00
     * 方法介绍:   查询所有图书信息
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selBookInfoByCond")
    public ToJson<BookInfoWithBLOBs> selBookInfoByCond(BookInfoWithBLOBs bookInfoWithBLOBs,Integer page,Integer pageSize,boolean useFlag){
       return bookInfoService.selBookInfoByCond(bookInfoWithBLOBs,page,pageSize,useFlag);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年9月11日 下午10:02:00
     * 方法介绍:   图书信息导入
     * 参数说明:
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/importBookInfo")
    public  ToJson<BookInfoWithBLOBs> importBookInfo(HttpServletRequest request, HttpServletResponse response, MultipartFile file, HttpSession session){
        return bookInfoService.importBookInfo(request,response,file,session);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月24日 上午9:43:00
     * 方法介绍:   导出查询出的图书信息
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/outputSelBookInfoByCond")
    public ToJson<BookInfoWithBLOBs> outputSelBookInfoByCond(BookInfoWithBLOBs bookInfoWithBLOBs,HttpServletRequest request, HttpServletResponse response){
        return bookInfoService.outputSelBookInfoByCond(bookInfoWithBLOBs,request,response);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017-10-25 10:33
     * 类介绍  :   批量删除图书信息
     * 构造参数:
     */
    @ResponseBody
    @RequestMapping("/delBookInfoByIds")
    public  ToJson<BookInfoWithBLOBs> delBookInfoByIds(String[] bookIds){
        return bookInfoService.delBookInfoByIds(bookIds);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:46:00
     * 方法介绍:   根据bookNo条件查询图书信息条数
     * 参数说明:   @param bookInfoWithBLOBs
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selInfoCountByBookNo")
    public ToJson<BookInfoWithBLOBs> selInfoCountByBookNo(String bookNo){
        return bookInfoService.selInfoCountByBookNo(bookNo.trim());
    }
}
